In general a vector control method is used for controlling an electric current of a motor employing a permanent magnet synchronous method. The vector control method separates the current into q-axis current that increases torque, and its orthogonal d-axis current. This vector control is carried out by a vector controller that receives an external command for calculating a command voltage to be supplied to a motor driver that supplies the power to the motor.
The vector control method discussed above sometimes encounters such a phenomenon that when a value of the external command becomes greater, the command voltage exceeds a suppliable voltage from the motor driver. This phenomenon is referred to as a voltage saturation, which tends to occur easier at a greater rpm of the motor. Because an induction voltage generated during the rotating of the motor increases in proportion to the rpm, and this increment can be supplemented with the voltage supplied from the motor, so that a voltage between the terminals of the motor also increases. The suppliable voltage also becomes smaller in a case where large load is applied or a low power voltage is applied. In this case, the voltage saturation tends to occur because a margin of the suppliable voltage becomes smaller.
The voltage saturation fails to increase the q-axis current during the powering operation of the motor, so that torque may decrease, or an integration term of the current controller is wound-up. As a result, static or dynamic characteristics can be lowered. During the regenerating operation, the q-axis current greater than the command value flows, which invites an over-current, over-voltage or excessive brake-torque, whereby the safety is adversely affected.
To overcome this problem, a flux weakening control method is employed for preventing the voltage saturation. This method allows delivering a negative d-axis current for demagnetizing the magnetic flux produced by the permanent magnet, thereby preventing the induction voltage from increasing.
Here is an example of a conventional flux weakening control method. This method uses a means for detecting a voltage saturation, and integrates a signal corresponding to a saturation amount detected by this means or integrates an appropriate fixed value. The integrated value is output as a d-axis current command to the current controller. This method is referred to as a closed-loop flux weakening control method. (Refer to Patent Literature 1.)
However, when the negative d-axis current is kept increasing, a voltage-reduction effect is lowered before the voltage turns to increase. The boundary, at which the voltage turns from decrease to increase, is a limit of the flux weakening control, and a margin of the voltage between the terminals of the motor becomes maximum at this limit. In other words, an available q-axis current and an available torque become maximum at this limit. Hereinafter, the maximum suppliable torque of the motor is referred to as a limit torque.
The limit torque does not stay constant but it varies depending on the condition of the motor. Since the margin of the voltage between terminals of the motor becomes smaller at a greater induction voltage, the limit torque decreases at a greater rpm. The torque suppliable at a low rpm thus occasionally cannot be supplied at a greater rpm even with the aid of the flux weakening control.
Greater torque than the limit torque will cause the voltage saturation, which incurs a torque-tracking error or wind-up, and resultantly invites unstable control as well as degradation in characteristics. Worse still, when the closed-loop flux weakening control is done in the voltage saturation state, the d-axis current command disperses along a negative direction, so that unsteady control is expected.
Patent Literature 2 discloses prior art for overcoming the foregoing output-limit problem. FIG. 11 shows a block diagram of a motor control device employing this prior art. In motor control device 90 shown in FIG. 11, current-vector controller 102 follows an external torque command τ0* for controlling an electric current of motor 100. Saturation detector 112 detects a voltage saturation based on voltage commands vd* and vq* supplied from current-vector controller 102 to driver 101. Saturation integrator 113 performs integral computation based on a saturation detection signal supplied from saturation detector 112, and generates a flux weakening current command ids0*, (i.e. a negative d-axis current command). Maximum d-axis current calculator 114 sets a negative upper limit value idslmt of the flux weakening current command based on suppliable voltage Vc from driver 101 and rpm ω of motor 100. A d-axis current limiter 115 limits the flux weakening current command ids0* to the upper limit value idslmt. Target command limit value calculator 116 sets a limit torque value τlmt* based on suppliable voltage Vc, rpm ω, and upper limit value idslmt. Target command limiter 117 limits external command torque τ0* to limit torque value τlmt*. Regular region d-axis current calculator 118 outputs regular current command idu* based on command torque τ* supplied from target command limiter 117. A d-axis current selector 119 selects one of regular current command idu* or flux weakening current command ids* supplied from d-axis current limiter 115 for outputting the selected one as a d-axis current command id* to current-vector controller 102. A q-axis current command generator 108 generates a q-axis current command iq* based on command torque τ* and d-axis current command id*, and supplies it to current-vector controller 102.
The prior art discussed above allows preventing the voltage saturation with the aid of the flux weakening control, and allows limiting the external command torque τ0 to the limit torque value τlmt* suppliable from the motor. As a result, the voltage saturation cannot occur in the entire operating range. The foregoing prior art also allows limiting the flux weakening current command ids0* to the upper limit idslmt that works for obtaining the limit torque value τlmt*. As a result, the d-axis current command can be prevented from dispersing.
However, the prior art disclosed in Patent Literature 2 calculates the limit torque value τlmt* suppliable from the motor based on suppliable voltage Vc from the driver, rpm ω of the motor, and the negative upper limit idslmt of the flux weakening current command and using a formula including constants (e.g. inductance) proper to the motor (motor constant). Variations in inductance of the motor depending on the motor operation or dispersions in motor constant of each motor will fail to calculate the limit torque value τlmt* correctly.
If an error generated in this calculation causes setting the limit torque value τlmt* (i.e. torque limiting value) greater than an actual limit torque, the electric current is controlled based on torque command τ* greater than the limit torque, so that the voltage saturation occasionally cannot be overcome.
To the contrary, when the limit torque value τlmt* (i.e. torque limiting value) is set smaller than the actual limit torque, torque command τ* is excessively limited, so that sufficient torque occasionally cannot be produced.